header%20ipynb.png

Hands-On


Hands-On ini digunakan pada kegiatan Microcredential Associate Data Scientist 2021

Tugas Mandiri Pertemuan 10


Pertemuan 10 (sepuluh) pada Microcredential Associate Data Scientist 2021 menyampaikan materi mengenai Membangun Model (Dasar Regresi dan Regresi Linier). silakan Anda kerjakan Latihan 1 s/d 20. Output yang anda lihat merupakan panduan yang dapat Anda ikuti dalam penulisan code :)

Latihan (1)

Melakukan import library yang dibutuhkan

Load Dataset

Latihan (2)

Review Dataset

Data kita mempunyai 26 kolom dengan 205 baris.

Ternyata data kita tidak ada missing values.

Simple linear regression atau regresi linear sederhana merupakan jenis regresi yang paling sederhana karena hanya melibatkan satu variabel bebas atau variabel independen X.

Visualisasi data untuk pemilihan fitur / variabel independen X


  1. Variabel y atau variabel dependent adalah 'price'
  2. Lakukan Visualisasi dalam penerapannya agar dapat terlihat jelas / mempermudah dalam membaca data tsb
  3. Untuk dapat menentukan variabel X yaitu dapat melihat korelasi antar variabel dengan variabel y / kolom 'price'

Latihan (3)

untuk dapat menentukan lebih detail / akurat dalam pemilihan fitur dapat dilihat dari hubungan korelasi nya dengan function corr()

tampaknya enginesize, boreratio, horsepower, wheelbase memiliki korelasi yang signifikan dengan harga/price.

Latihan (4)

Buat Visualisasi scater plot dari kolom:

'enginesize', 'boreratio', 'stroke','compressionratio', 'horsepower', 'peakrpm', 'wheelbase', 'citympg', 'highwaympg'

Latihan (5)

Buat Visualisasi Heatmap dari kolom:

'enginesize', 'boreratio', 'stroke','compressionratio', 'horsepower', 'peakrpm', 'wheelbase', 'citympg', 'highwaympg'

Dari hasil visualisasi diatas bahwa fitur/kolom enginesize memiliki korelasi yang tinggi terhadap kolom price / variabel dependent sehingga kita mengambil fitur/kolom enginesize untuk di training

Latihan (6)

Buat Visualisasi Scatter Plot antara calon variabel X(enginesize) dan y(price):

Scatter plot menunjukkan dengan jelas hubungan antarvariabel serta sebarannya di dataset. Selain itu, dengan scatter plot juga kita dapat mengindikasikan bahwa variabel enginesize dan price memiliki hubungan linear.

Catatan : korelasi 0.874145 adalah nilai yang cukup tinggi, artinya nilai price benar-benar sangat dipengaruhi oleh nilai enginesize, karena korelasi tinggi maka algoritma Regresi Linier ini cocok digunakan untuk data tersebut.

Latihan (7)

definisi variabel X(enginesize) dan y(price):

Formula Regresi Linear gambar.png

"Jika kita melihat formula regresi linear di atas, kita pasti ingat rumus persamaan garis yang pernah dipelajari di bangku sekolah, yaitu y = mx + c, dimana m merupakan gradien atau kemiringan garis dan c merupakan konstanta."

Latihan (8)

definisi variabel nilai mean/rata-rata X(enginesize) dan nilai mean/rata-rata y(price):

Latihan (9)

carilah nilai koefisien korelasi nya dengan rumus dibawah:

gambar.png

carilah nilai parameter theta 1 dan theta 0 dengan rumus dibawah:

gambar.png

theta_1 = ((111-104.11) * (13495-13276.71)) + ... + ((114-104.11) * (22625-13276.71)) / ((111-104.11)^2 + ... + (114-104.11)^2)

Latihan (10)

carilah nilai theta_1 atau nilai slope

Latihan (11)

carilah nilai theta_0 atau nilai intercept

Maka persamaan garis :

y = 167.69x - 8005.44

Jadi persamaan garis diatas dapat digunakan untuk melakukan prediksi apabila kita memiliki data enginesize yang baru, price dapat diperkirakan dengan rumus tersebut, masukkan nilai enginesize baru ke x, maka perkiraan nilai y (price) akan didapat.

Latihan (12)

carilah nilai prediksi secara manual dan buatlah visualisasi scater plot nya

Linier Regression digunakan untuk Prediksi dengan mencari pola garis terbaik antara variable independent dan dependen

Pros:

Mudah diimplementasikan
Digunakan untuk memprediksi nilai numerik/ continous /data jenis interval dan ratio

Cons :

Cenderung mudah Overfitting
Tidak dapat digunakan bila relasi antara variabel independen dan dependen tidak linier atau korelasi variabel rendah

Linier Regression dengan menggunakan library sklearn

  1. Pertama yang kita lakukan adalah split data, Train/test split adalah salah satu metode yang dapat digunakan untuk mengevaluasi performa model machine learning. Metode evaluasi model ini membagi dataset menjadi dua bagian yakni bagian yang digunakan untuk training data dan untuk testing data dengan proporsi tertentu. Train data digunakan untuk fit model machine learning, sedangkan test data digunakan untuk mengevaluasi hasil fit model tersebut.

image.png

Python memiliki library yang dapat mengimplementasikan train/test split dengan mudah yaitu Scikit-Learn. Untuk menggunakannya, kita perlu mengimport Scikit-Learn terlebih dahulu, kemudian setelah itu kita dapat menggunakan fungsi train_test_split().

Latihan (13)

split data train dan test dengan function train_test_split() dengan train_size=0.8, test_size=0.2 dan random_state=100

X dan y adalah nama variabel yang digunakan saat mendefinisikan data source dan data target. Parameter test_size digunakan untuk mendefinisikan ukuran data testing. Dalam contoh di atas, test_size=0.2 berarti data yang digunakan sebagai data testing adalah sebesar 20% dari keseluruhan dataset.

Perlu diketahui bahwa metode ini akan membagi train set dan test set secara random atau acak. Jadi, jika kita mengulang proses running, maka tentunya hasil yang didapat akan berubah-ubah. Untuk mengatasinya, kita dapat menggunakan parameter random_state

Latihan (14)

buat object variabel linier regression

Latihan (15)

training the model menggunakan training data yang sudah displit sebelumnya.

Latihan (16)

cari tau nilai slope/koefisien (m) dan intercept (b), dengan menggunakan function dari library sklearn -> LinierRegression

Dari nilai m dan b diatas, kalau dimasukan ke dalam rumus persamaan menjadi:

y = 168.17x - 8037.06

Latihan (17)

cari tahu accuracy score dari model kita menggunakan testing data yang sudah displit sebelumnya. Dan nilai korelasinya

Model kita mendapatkan accuracy score sebesar 80.68%

Latihan (18)

visualisasi Regression Line menggunakan data testing.

Garis merah merupakan Regression Line dari model yang telah dibuat sebelumnya.

Latihan (19)

Setelah kita yakin dengan model yang dibuat, selanjutnya adalah prediksi dari harga mobil dengan enginesize 100, 150, dan 200.

Semakin tinggi nilai error, semakin besar errornya

Latihan (20)

Cetak nilai Mean Absolute Error, Mean Squared Error, dan Root Mean Squared Error